SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS ON
GO
CREATE Procedure [dbo].[SP_TCMOVI_BANC_I02]  
/*-------------------------------------------------------*/
/*---Empresa              : OFISIS S.A.                --*/
/*---Cliente              : OFISIS              	   --*/
/*---Sistema              : Presupuesto                --*/
/*---M©dulo               : Empresa                    --*/
/*---Programa             : Grabaci©n Cabecera         --*/
/*---                       Movimiento Bancos(Ingresos)--*/
/*---Script               : tcmovi_b.sql               --*/
/*---Nombre SP            : SP_TCMOVI_BANC_I02         --*/
/*---Desarrollado por     : Javier Flores A.           --*/
/*---Fecha Creaci©n       : 08/06/1999                 --*/
/*---Base Datos           : Microsoft Sql Server       --*/
/*---Versi©n              : 6.5                        --*/
/*---Invoca a SP          :                            --*/ 
/*-------------------------------------------------------*/  
/*-------------------------------------------------------*/  
/*---Modificado 1 por     : Maribel Julca Rodriguez    --*/  
/*---Fecha Modificaci©n   : 21/04/2005                 --*/   
/*---Detalle Modificaci©n : ingreso de los campos CO_USUA_CREA, CO_USUA_MODI  --*/  
/*-------------------------------------------------------*/  
/*-------------------------------------------------------*/  
/*---Modificado 2 por     : Carlos Marquez Escobar     --*/  
/*---Fecha Modificaciön   : 14/08/2007                 --*/  
/*---Detalle Modificaciön : Fact Cambio Externo		  .--*/  
/*-------------------------------------------------------*/  
/*-------------------------------------------------------*/  
/*---Comentarios                                       --*/  
/*---                                                  --*/  
/*---                                                  --*/  
/*-------------------------------------------------------*/  
/*-------------------------------------------------------*/  
/*--- Drop Proc SP_TCMOVI_BANC_I02                     --*/  
/*--- Grant Execute on SP_TCMOVI_BANC_I02 to public    --*/   
/*--- Exec SP_TCMOVI_BANC_I02                          --*/  
/*-------------------------------------------------------*/  
 @ISCO_EMPR			TD_VC_002,   
 @ISCO_USUA_MODI	TD_VC_008_USUA,  
 @ISCO_BANC			TD_VC_003,   
 @ISNU_CNTA_BANC	TD_VC_020,  
 @ISAA_BNCO			TD_VC_004,   
 @ISMM_BNCO			TD_VC_002,   
 @ISTI_MOVI_BANC	TD_VC_001,    
 @ISNU_COMP_BANC	TD_VC_008,   
 @IDFE_OPER			TD_DT_001,   
 @ISCO_TIPO_OPER	TD_VC_003,  
 @ISCO_SUBR			TD_VC_003,   
 @ISCO_TIPO_DOCU	TD_VC_003,   
 @ISNU_DOCU_BANC	TD_VC_020,   
 @INFA_TIPO_CAMB	TD_NU_015_006,
 @INFA_CAMB_EXTR	TD_NU_015_006,
 @ISCO_BANC_CHEQ	TD_VC_003,   
 @ISNU_CHEQ			TD_VC_020,  
 @INIM_MOVI			TD_NU_016_004,   
 @ISTI_ENTI			TD_VC_001,  
 @ISCO_ENTI			TD_VC_020,   
 @ISDE_NOMB_ORDE	TD_VC_100,   
 @ISSI_SOLO_BANC	TD_VC_001_SINO,   
 @ISDE_OBSE			TD_VC_100,   
 @ISTI_CORR_INEG	TD_VC_001,  
 @INUL_CORR_INGR	TD_IN_001,  
 @INUL_CORR_INEG	TD_IN_001,  
 @IDFE_DISP			TD_DT_001,  
 @ISCO_ENTR_REND	TD_VC_004,  
 @ISCO_UNID_CNTB	TD_VC_003,  
 @ISNU_RECI_COBR	TD_VC_010,  
 @IDFE_RECI_COBR	TD_DT_001,  
 @IDFE_DIFE			TD_DT_001,  
 @ISCO_GRUP_CONC	TD_VC_020,  
 @ISNU_SOLI			TD_VC_010,  
 @ISST_ASTO_RESU	TD_VC_001

As
Declare   
   @VNCO_NUEV_NUME TD_IN_001,   
   @VSCO_NUEV_CHAR TD_VC_008,  
   @VNNU_REGI      TD_IN_001,  
   @VSST_INTE_BACH TD_VC_001,  
   @VSTI_OPNI_CARG TD_VC_003,  
   @VSTI_OPNI_ABON TD_VC_003

  
Begin Tran MR_TCMOVI_BANC_I02  
	/** inserta en la cabecera de bancos **/  
	
	Select	@VSST_INTE_BACH = ST_INTE_BACH,  
			@VSTI_OPNI_CARG = CO_TIPO_OPEG, @VSTI_OPNI_ABON = CO_TIPO_OPER  
	From TMPARA_TESO Where CO_EMPR = @ISCO_EMPR  
	
	
	If Rtrim(@ISCO_BANC_CHEQ) = ''  
		Select @ISCO_BANC_CHEQ = NULL  
	
	If Rtrim(@ISNU_CHEQ) = ''  
		Select @ISNU_CHEQ = NULL  
	
	If Rtrim(@ISCO_TIPO_DOCU) = ''  	
		Select @ISCO_TIPO_DOCU = NULL  
	
	If Rtrim(@ISCO_ENTR_REND) = ''  
		Select @ISCO_ENTR_REND = NULL  
	
	-- SI LA INTERFASE ES EN LINEA Y DETALLADA, LEE EL CORRELATIVO DEL LIBRO CONTABLE  
	If	@VSST_INTE_BACH = 'N' AND @ISST_ASTO_RESU = 'N' AND   
		@ISCO_TIPO_OPER != @VSTI_OPNI_CARG AND @ISCO_TIPO_OPER != @VSTI_OPNI_ABON  
	
		EXEC SP_TTULTI_ASTO_Q01 @ISCO_EMPR,@ISCO_USUA_MODI, @ISCO_UNID_CNTB, @ISCO_TIPO_OPER, @IDFE_OPER, 
@ISNU_COMP_BANC OUTPUT  
	
	Else  
	Begin  
		Select  @VNNU_REGI = Count(*)   
		From    TCMOVI_BANC  
		Where   CO_EMPR = @ISCO_EMPR   
		And CO_UNID_CONC = @ISCO_UNID_CNTB
		And CO_BANC = @ISCO_BANC   
		And NU_CNTA_BANC = @ISNU_CNTA_BANC   
		And AA_BNCO = @ISAA_BNCO  
		And MM_BNCO = @ISMM_BNCO   
		And TI_MOVI_BANC = 'I'    
		And NU_COMP_BANC = @ISNU_COMP_BANC   
		
		If @VNNU_REGI > 0 OR RTRIM(ISNULL(@ISNU_COMP_BANC, '')) = ''  
		Begin           
			Select  @VSCO_NUEV_CHAR = ISNULL(MAX(NU_COMP_BANC), '0')  
			From    TCMOVI_BANC   
			Where   CO_EMPR = @ISCO_EMPR   
			And CO_UNID_CONC = @ISCO_UNID_CNTB
			And CO_BANC = @ISCO_BANC   
			And NU_CNTA_BANC = @ISNU_CNTA_BANC   
			And AA_BNCO = @ISAA_BNCO  
			And MM_BNCO = @ISMM_BNCO   
			And TI_MOVI_BANC = 'I'    
			And NU_COMP_BANC LIKE '000%'  
			
			Select @VNCO_NUEV_NUME = Convert(Int , @VSCO_NUEV_CHAR) + 1  
			
			Select @VSCO_NUEV_CHAR = Convert(Char(8) , @VNCO_NUEV_NUME)  
			
			-- RELLENA DE CEROS HASTA 8 CARACTERES   
			Select @VSCO_NUEV_CHAR = ISNULL(REPLICATE('0',8- DATALENGTH(LTRIM(RTRIM(@VSCO_NUEV_CHAR)))),'') 
+LTRIM(RTRIM(@VSCO_NUEV_CHAR))            
			
			Select @ISNU_COMP_BANC = @VSCO_NUEV_CHAR   
		End  
	End  
	
	
	Insert Into TCMOVI_BANC(  
	CO_EMPR, CO_BANC, NU_CNTA_BANC, AA_BNCO, MM_BNCO, TI_MOVI_BANC, NU_COMP_BANC,   
	FE_OPER, CO_TIPO_OPER, CO_SUBR, CO_TIPO_DOCU, NU_DOCU_BANC, FA_TIPO_CAMB, FA_CAMB_EXTR, CO_BANC_CHEQ, NU_CHEQ,  
	IM_MOVI, FE_CHEQ,  FE_DISP, FE_ENTR_CHEQ, FE_PROG_CHEQ, TI_ENTI, CO_ENTI, DE_NOMB_ORDE,   
	SI_SOLO_BANC, SI_OPER_CONC, AA_CONC, MM_CONC, DE_OBSE, ST_CONT, NU_PROC, TI_SITU,  
	CO_USUA_CREA,FE_USUA_CREA, CO_USUA_MODI, FE_USUA_MODI, CO_ENTR_REND, CO_UNID_CONC, NU_RECI_COBR, FE_RECI_COBR, 
FE_DIFE, CO_GRUP_CONC,  
	NU_SOLI)  
	Values (  
	@ISCO_EMPR, @ISCO_BANC, @ISNU_CNTA_BANC, @ISAA_BNCO, @ISMM_BNCO, @ISTI_MOVI_BANC, @ISNU_COMP_BANC,   
	@IDFE_OPER, @ISCO_TIPO_OPER, @ISCO_SUBR, @ISCO_TIPO_DOCU, @ISNU_DOCU_BANC, @INFA_TIPO_CAMB, @INFA_CAMB_EXTR, 
	@ISCO_BANC_CHEQ, @ISNU_CHEQ, @INIM_MOVI, NULL,  @IDFE_DISP, NULL, NULL, @ISTI_ENTI, @ISCO_ENTI,   
	@ISDE_NOMB_ORDE, @ISSI_SOLO_BANC, 'N', NULL, NULL, @ISDE_OBSE, 'N', NULL, 'ACT',@ISCO_USUA_MODI,GETDATE(), 
@ISCO_USUA_MODI, GETDATE(),   
	@ISCO_ENTR_REND, @ISCO_UNID_CNTB, @ISNU_RECI_COBR, @IDFE_RECI_COBR, @IDFE_DIFE, @ISCO_GRUP_CONC,   
	@ISNU_SOLI)  
	
	If @@error <> 0  
	Begin  
		Rollback tran  
		Return  
	End      
	
	
	/* Actualizando Estado y Fecha Liquidaci®n Solicitud Caja */  
	
	Update  TMSOLI_CABA   
	Set	TI_SITU = 'LIQ',   
		FE_LIQU = @IDFE_OPER,  
		CO_USUA_MODI = @ISCO_USUA_MODI,   
		FE_USUA_MODI = GETDATE()  
	Where   CO_EMPR = @ISCO_EMPR  
	And NU_SOLI = @ISNU_SOLI  
	
	If @@error <> 0  
	Begin  
		rollback tran  
		return  
	End    
	
	/* ----------- Actualiza los Correlativos ------------------ */  
	If	@VSST_INTE_BACH = 'S' OR @ISST_ASTO_RESU = 'S' OR   
		@ISCO_TIPO_OPER = @VSTI_OPNI_CARG OR @ISCO_TIPO_OPER = @VSTI_OPNI_ABON  
	Begin      
		If @ISTI_CORR_INEG = 'N'  
		Begin  
			Select @INUL_CORR_INGR = UL_CORR_INGR   
			From   TMSABA_MENS  
			WHERE  CO_EMPR = @ISCO_EMPR    
			And CO_BANC = @ISCO_BANC   
			And NU_CNTA_BANC = @ISNU_CNTA_BANC   
			And AA_BNCO = @ISAA_BNCO   
			And MM_BNCO = @ISMM_BNCO   
			
			Update TMSABA_MENS  
			Set UL_CORR_INGR = @INUL_CORR_INGR + 1,   
			CO_USUA_MODI = @ISCO_USUA_MODI,   
			FE_USUA_MODI = GETDATE()  
			Where  CO_EMPR = @ISCO_EMPR   
			And CO_BANC = @ISCO_BANC   
			And NU_CNTA_BANC = @ISNU_CNTA_BANC   
			And AA_BNCO = @ISAA_BNCO   
			And MM_BNCO = @ISMM_BNCO  
			
			If @@error <> 0  
			Begin  
				Rollback tran  
				Return  
			End  
		End  
		Else  
		Begin  
			Select @INUL_CORR_INEG = UL_CORR_INEG   
			From   TMSABA_MENS  
			WHERE  CO_EMPR = @ISCO_EMPR    
			And CO_BANC = @ISCO_BANC   
			And NU_CNTA_BANC = @ISNU_CNTA_BANC   
			And AA_BNCO = @ISAA_BNCO   
			And MM_BNCO = @ISMM_BNCO   
			
			Update TMSABA_MENS  
			Set  UL_CORR_INEG = @INUL_CORR_INEG + 1,   
			CO_USUA_MODI = @ISCO_USUA_MODI,   
			FE_USUA_MODI = GETDATE()  
			Where  CO_EMPR = @ISCO_EMPR   
			And CO_BANC = @ISCO_BANC   
			And NU_CNTA_BANC = @ISNU_CNTA_BANC   
			And AA_BNCO = @ISAA_BNCO   
			And MM_BNCO = @ISMM_BNCO  
			
			If @@error <> 0  
			Begin  
				Rollback tran  
				Return  
			End  
		End  
	End   
	
	Commit Tran  
  
SELECT @ISNU_COMP_BANC  
RETURN  
  
/*----------------------- Fin ---------------------------*/


GO
